#include "Thread.hpp"
#include <unistd.h>

using namespace ThreadModlue;
//模拟多线程


//模拟单线程

class ThreadData
{
public:
    pthread_t tid;
    std::string name;
};

void Count(ThreadData td)
{
    while (true)
    {
        std::cout << "我是一个新线程" << std::endl;
        sleep(1);
    }
}

int main()
{
    ThreadData td;
    Thread<ThreadData> t(Count, td);

    t.Start();

    sleep(2);
    t.Stop();
    sleep(1);
    t.Join();   

    return 0;
}

// int main()
// {
//     Thread t([](){
//         while(true)
//         {
//             char name[128];
//             pthread_getname_np(pthread_self(), name, sizeof(name));
//             std::cout << "我是一个线程：" << name << std::endl;
//             sleep(1);
//             //一般来说 线程的名字是用来方便 debug的;
//         }
//     });
    
//     t.Start();
//     //t.Detach();

//     sleep(5);
//     t.Stop();

//     //sleep(5);
//     t.Join();
//     return 0;
// }

// Thread t([](){
    //     while(true)
    //     {
    //         char name[128];
    //         pthread_getname_np(pthread_self(), name, sizeof(name));
    //         std::cout << "我是一个新线程: " << name << std::endl; // 我的线程的名字是什么呀？debug
    //         sleep(1);
    //     }
    // });
    // t.Start();
    // t.Detach();
    // sleep(5);

    // t.Stop();

    // sleep(5);

    // t.Join();